import axios from "axios"; import { useEffect, useState } from "react"; import Filter from "@/components/elements/Filter"; import Footer from "@/components/layouts/Footer"; import Header from "@/components/layouts/Header"; import Layout from "@/components/layouts/Layout"; import Pagination from "@/components/elements/Pagination"; import ProductCard from "@/components/products/ProductCard"; import { getIdFromSlug, getNameFromSlug } from "@/core/utils/slug"; import FilterIcon from "@/icons/filter.svg"; import apiOdoo from "@/core/utils/apiOdoo"; import { Swiper, SwiperSlide } from "swiper/react"; import "swiper/css"; import "swiper/css/pagination"; import "swiper/css/autoplay"; import { Pagination as SwiperPagination } from "swiper"; import Image from "@/components/elements/Image"; import LineDivider from "@/components/elements/LineDivider"; export async function getServerSideProps(context) { const { slug, page = 1, category = '', price_from = '', price_to = '', order_by = '', } = context.query; let urlParameter = [ 'q=*', `page=${page}`, `brand=${getNameFromSlug(slug)}`, `category=${category}`, `price_from=${price_from}`, `price_to=${price_to}`, `order_by=${order_by}` ].join('&'); let searchResults = await axios(`${process.env.SELF_HOST}/api/shop/search?${urlParameter}`); searchResults = searchResults.data; const manufacture = await apiOdoo('GET', `/api/v1/manufacture/${getIdFromSlug(slug)}`); return { props: { searchResults, page, slug, category, price_from, price_to, order_by, manufacture } }; } export default function BrandDetail({ searchResults, page, slug, category, price_from, price_to, order_by, manufacture }) { const pageCount = Math.ceil(searchResults.response.numFound / searchResults.responseHeader.params.rows); const productStart = searchResults.responseHeader.params.start; const productRows = searchResults.responseHeader.params.rows; const productFound = searchResults.response.numFound; const [activeFilter, setActiveFilter] = useState(false); const [filterCount, setFilterCount] = useState(0); const route = () => { let route = `/shop/brands/${slug}`; if (category) route += `&category=${category}`; if (price_from) route += `&price_from=${price_from}`; if (price_to) route += `&price_to=${price_to}`; if (order_by) route += `&order_by=${order_by}`; return route; } useEffect(() => { let calculateFilterCount = 0; if (category) calculateFilterCount++; if (price_from || price_to) calculateFilterCount++; if (order_by) calculateFilterCount++; setFilterCount(calculateFilterCount); }, [category, price_from, price_to, order_by]); return ( <>
setActiveFilter(false)} defaultPriceFrom={price_from} defaultPriceTo={price_to} defaultBrand='' defaultCategory={category} defaultOrderBy={order_by} searchResults={searchResults} disableFilter={['brand']} /> { manufacture.banners?.map((banner, index) => ( {`Banner )) }

Produk dari brand:

{ manufacture.logo ? (
{manufacture.name}
) : (

{ manufacture.name }

) }

Jumlah Produk:

{ searchResults.response.numFound }

Produk

{productFound > 0 ? ( <> Menampilkan  {pageCount > 1 ? ( <> {productStart + 1}-{ (productStart + productRows) > productFound ? productFound : productStart + productRows }  dari  ) : ''} {searchResults.response.numFound}  produk untuk brand {getNameFromSlug(slug)} ) : 'Mungkin yang anda cari'}
{searchResults.response.products.map((product) => ( ))}